package longestPalindrome;
/**
 * @Date 2020/03/27
 * @author 王光浩
 * @Thinking 使用暴力法，获取所有的子串，然后从中找出最长回文子串。
 * @Analysis 时间复杂度O（n^3）,空间复杂度O（n）
 */
public class MyMethodOne {
	public String longestPalindrome(String s) {
		StringBuilder ret=new StringBuilder();
		int xor=0;
		for(int i=0;i<s.length();i++) {
			for(int j=i;j<s.length();j++) {
				helper(s,ret,i,j);
			}
		}
		return ret.toString();
    }
	private void helper(String s,StringBuilder ret,int first,int last) {
		int pre=first;
		int later=last;
		//进行双指针,判断是否是回文字符串
		while(pre<last) {
			if(s.charAt(pre)!=s.charAt(last))return;
			pre++;
			last--;
		}
		//将当前子串的长度与目前最长的回文子串的长度进行比较
		if((last+1-first)>ret.length()) {
			ret.setLength(0);
			ret.append(s.substring(first,last+1));
		}
	}
}
